package org.altervista.cp.thinjdbc.wrappers;

import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.NClob;
import java.sql.SQLXML;
import java.sql.Struct;
import java.util.Properties;

public abstract class Connection4 extends Connection {

	public Statement4 createStatement() {
		return (Statement4) super.createStatement();
	}

	public Statement4 createStatement(int resultSetType,
			int resultSetConcurrency, int resultSetHoldability) {
		return (Statement4) super.createStatement(resultSetType,
				resultSetConcurrency, resultSetHoldability);
	}

	public Statement4 createStatement(int resultSetType,
			int resultSetConcurrency) {
		return (Statement4) super.createStatement(resultSetType,
				resultSetConcurrency);
	}

	public CallableStatement4 prepareCall(String sql, int resultSetType,
			int resultSetConcurrency, int resultSetHoldability) {
		return (CallableStatement4) super.prepareCall(sql,
				resultSetType, resultSetConcurrency, resultSetHoldability);
	}

	public CallableStatement4 prepareCall(String sql, int resultSetType,
			int resultSetConcurrency) {
		return (CallableStatement4) super.prepareCall(sql,
				resultSetType, resultSetConcurrency);
	}

	public CallableStatement4 prepareCall(String sql) {
		return (CallableStatement4) super.prepareCall(sql);
	}

	public PreparedStatement4 prepareStatement(String sql) {
		return (PreparedStatement4) super.prepareStatement(sql);
	}

	public DatabaseMetaData4 getMetaData() {
		return (DatabaseMetaData4) super.getMetaData();
	}

	public PreparedStatement4 prepareStatement(String sql,
			int autoGeneratedKeys) {
		return (PreparedStatement4) super.prepareStatement(sql,
				autoGeneratedKeys);
	}

	public PreparedStatement4 prepareStatement(String sql,
			int[] columnIndexes) {
		return (PreparedStatement4) super.prepareStatement(sql,
				columnIndexes);
	}

	public PreparedStatement4 prepareStatement(String sql,
			String[] columnNames) {
		return (PreparedStatement4) super.prepareStatement(sql,
				columnNames);
	}

	public PreparedStatement4 prepareStatement(String sql,
			int resultSetType, int resultSetConcurrency) {
		return (PreparedStatement4) super.prepareStatement(sql,
				resultSetType, resultSetConcurrency);
	}

	public PreparedStatement4 prepareStatement(String sql,
			int resultSetType, int resultSetConcurrency,
			int resultSetHoldability) {
		return (PreparedStatement4) super.prepareStatement(sql,
				resultSetType, resultSetConcurrency, resultSetHoldability);
	}

	public abstract Array createArrayOf(String typeName, Object[] elements);

	public abstract Blob createBlob();

	public abstract Clob createClob();

	public abstract NClob createNClob();

	public abstract SQLXML createSQLXML();

	public abstract Struct createStruct(String typeName, Object[] attributes);

	public abstract Properties getClientInfo();

	public abstract String getClientInfo(String name);

	public abstract boolean isValid(int timeout);

	public abstract void setClientInfo(Properties properties);

	public abstract void setClientInfo(String name, String value);

}
